'''
 现有n种砝码，重量互不相等，分别为 m1,m2,m3…mn ；
每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧)，问能称出多少种不同的重量。
注：
称重重量包括 0

输入描述：
对于每组测试数据：
第一行：n --- 砝码的种数(范围[1,10])
第二行：m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])
第三行：x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])
输出描述：
利用给定的砝码可以称出的不同的重量数

示例1
输入：
    2
    1 2
    2 1
输出：
    5
说明：
可以表示出0，1，2，3，4五种重量。
'''

# 1. 获取数据输入
categoires = int(input()) #砝码种类
# 如果不确保数字之间只有一个空格，可以不写split的分割参数，函数会自动判定分隔符
wegihts = list(map(int,input().split()))    # 每种砝码的重量
quantities = list(map(int,input().split())) # 每种砝码的数量

# 2. 创建中间变量
all_weights = [] # [1,1,2] # 存放所有砝码
unique_weights = set([0])  # 记录砝码组合的质量
for weight,quant in zip(wegihts,quantities):
    all_weights.extend([weight]*quant)

# 3. 进行组合并输出答案
for wei in all_weights:
    for uni_wei in list(unique_weights):
        unique_weights.add(wei+uni_wei)
print(len(unique_weights))




